interface IDisposable{
    dispose()
}

interface ICardData{
    ID:number
    name:string
    /**卡片类型 */
    cty:number
    /**罕贵 */
    rare:number
    /**武器数据 */
    wp?:{
        /**攻击类型 */
        ty:number,
        /**射程 */
        range:number
        /**次数 */
        time:number
    }
    /**护盾数据，一个长度3的数组，为每一格可防御的攻击类型 */
    dp?:number[]
    /**设置型护盾持续时间，[数量，单位（次数/回合）]数组 */
    dt?:number[]
    /**设置型护盾是否可设置到对方位置 */
    op?:boolean
    /**战术效果 */
    effect?:any
    /**效果描述 */
    des?:string
    /**卡图 */
    img?:string
    /**是否实装 */
    enable?:boolean
}

class Type2Str{
    private static _dict:any
    private static get dict(){
        if(!Type2Str._dict){
            Type2Str._dict = RES.getRes('type2str_json')
        }
        return Type2Str._dict
    }
    public static CardType2Str(ct:CardType):string{
        return Type2Str.dict['card'][ct]
    }
    public static WeaponType2Str(wt:WeaponType):string{
        return Type2Str.dict['weapon'][wt]
    }
    public static UseType2Str(ut:UseType):string{
        return Type2Str.dict['use'][ut]
    }
}

/** 卡片类型 */
enum CardType{
    /**武器 */
	WEAPON,
    /**设置型护盾 */ 
    SET_SHIELD, 
    /**反应型护盾 */
    ACT_SHIELD,
    /**战术 */
    SKILL,
}

/**罕贵 */
enum RareType{
    N,R,SR,UR
}

/**武器伤害类型 */
enum WeaponType{
    /**空，用于表现护盾无法防御这一格 */
    NULL,
    /**实弹，撞击系 */
    SOLID,
    /**激光，热能系 */
    RASER,
    /**重力，空间系 */
    GRAVITY,
    /**精神，扰乱系 */
    MENTAL,
    /**特殊 */
    SPEC
}

/**消耗类型 */
enum UseType{
    /**经过x回合 */
    TURN,
    /**发动x次效果 */
    EFFECT
}
